<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>IDA SDK: funcs.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">IDA SDK
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="files.html"><span>Header&#160;Files</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#define-members">Macros</a>  </div>
  <div class="headertitle">
<div class="title">funcs.hpp File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Routines for working with functions within the disassembled program. </p>
<p>This file also contains routines for working with library signatures (e.g. FLIRT).</p>
<p>Each function consists of function chunks. At least one function chunk must be present in the function definition - the function entry chunk. Other chunks are called function tails. There may be several of them for a function.</p>
<p>A function tail is a continuous range of addresses. It can be used in the definition of one or more functions. One function using the tail is singled out and called the tail owner. This function is considered as 'possessing' the tail. <a class="el" href="funcs_8hpp.html#af9fec9907dd6b2d3e737997a0251032f" title="Get pointer to function structure by address. ">get_func()</a> on a tail address will return the function possessing the tail. You can enumerate the functions using the tail by using <a class="el" href="classfunc__parent__iterator__t.html" title="Class to enumerate all function parents sorted by addresses. ">func_parent_iterator_t</a>.</p>
<p>Each function chunk in the disassembly is represented as an "range" (a range of addresses, see range.hpp for details) with characteristics.</p>
<p>A function entry must start with an instruction (code) byte. </p>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structregarg__t.html">regarg_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register argument description.  <a href="structregarg__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfunc__t.html">func_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A function is a set of continuous ranges of addresses with characteristics.  <a href="classfunc__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlock__func.html">lock_func</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper class to lock a function pointer so it stays valid.  <a href="classlock__func.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfunc__tail__iterator__t.html">func_tail_iterator_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class to enumerate all function tails sorted by addresses.  <a href="classfunc__tail__iterator__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfunc__item__iterator__t.html">func_item_iterator_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class to enumerate all function instructions and data sorted by addresses.  <a href="classfunc__item__iterator__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfunc__parent__iterator__t.html">func_parent_iterator_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class to enumerate all function parents sorted by addresses.  <a href="classfunc__parent__iterator__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ab69925eef4a6347fd8f9026225604909"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab69925eef4a6347fd8f9026225604909"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#ab69925eef4a6347fd8f9026225604909">is_func_entry</a> (const <a class="el" href="classfunc__t.html">func_t</a> *pfn)</td></tr>
<tr class="memdesc:ab69925eef4a6347fd8f9026225604909"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does function describe a function entry chunk? <br /></td></tr>
<tr class="separator:ab69925eef4a6347fd8f9026225604909"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac798e57513ae645a9682c4ea695d754d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac798e57513ae645a9682c4ea695d754d"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#ac798e57513ae645a9682c4ea695d754d">is_func_tail</a> (const <a class="el" href="classfunc__t.html">func_t</a> *pfn)</td></tr>
<tr class="memdesc:ac798e57513ae645a9682c4ea695d754d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does function describe a function tail chunk? <br /></td></tr>
<tr class="separator:ac798e57513ae645a9682c4ea695d754d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a381aa5ad285df1295afbe5a70825dbf4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a381aa5ad285df1295afbe5a70825dbf4">lock_func_range</a> (const <a class="el" href="classfunc__t.html">func_t</a> *pfn, bool lock)</td></tr>
<tr class="memdesc:a381aa5ad285df1295afbe5a70825dbf4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lock function pointer Locked pointers are guaranteed to remain valid until they are unlocked.  <a href="#a381aa5ad285df1295afbe5a70825dbf4">More...</a><br /></td></tr>
<tr class="separator:a381aa5ad285df1295afbe5a70825dbf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b1b284ab27a052c1276f71e8d5bc091"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b1b284ab27a052c1276f71e8d5bc091"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a5b1b284ab27a052c1276f71e8d5bc091">is_func_locked</a> (const <a class="el" href="classfunc__t.html">func_t</a> *pfn)</td></tr>
<tr class="memdesc:a5b1b284ab27a052c1276f71e8d5bc091"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the function pointer locked? <br /></td></tr>
<tr class="separator:a5b1b284ab27a052c1276f71e8d5bc091"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9fec9907dd6b2d3e737997a0251032f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="classfunc__t.html">func_t</a> *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#af9fec9907dd6b2d3e737997a0251032f">get_func</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="memdesc:af9fec9907dd6b2d3e737997a0251032f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get pointer to function structure by address.  <a href="#af9fec9907dd6b2d3e737997a0251032f">More...</a><br /></td></tr>
<tr class="separator:af9fec9907dd6b2d3e737997a0251032f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fdde3cac23887c5c536ae79d2f9093b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a3fdde3cac23887c5c536ae79d2f9093b">get_func_chunknum</a> (<a class="el" href="classfunc__t.html">func_t</a> *pfn, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="memdesc:a3fdde3cac23887c5c536ae79d2f9093b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the containing tail chunk of 'ea'.  <a href="#a3fdde3cac23887c5c536ae79d2f9093b">More...</a><br /></td></tr>
<tr class="separator:a3fdde3cac23887c5c536ae79d2f9093b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c1d8703e0e1d004e009d089258ea46f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9c1d8703e0e1d004e009d089258ea46f"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a9c1d8703e0e1d004e009d089258ea46f">func_contains</a> (<a class="el" href="classfunc__t.html">func_t</a> *pfn, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="memdesc:a9c1d8703e0e1d004e009d089258ea46f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does the given function contain the given address? <br /></td></tr>
<tr class="separator:a9c1d8703e0e1d004e009d089258ea46f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae40503b8a0e15e31b016135aedd87267"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae40503b8a0e15e31b016135aedd87267"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#ae40503b8a0e15e31b016135aedd87267">is_same_func</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea1, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea2)</td></tr>
<tr class="memdesc:ae40503b8a0e15e31b016135aedd87267"><td class="mdescLeft">&#160;</td><td class="mdescRight">Do two addresses belong to the same function? <br /></td></tr>
<tr class="separator:ae40503b8a0e15e31b016135aedd87267"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6664330cccc9dec81ac6288bd29c20c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="classfunc__t.html">func_t</a> *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a6664330cccc9dec81ac6288bd29c20c3">getn_func</a> (size_t n)</td></tr>
<tr class="memdesc:a6664330cccc9dec81ac6288bd29c20c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get pointer to function structure by number.  <a href="#a6664330cccc9dec81ac6288bd29c20c3">More...</a><br /></td></tr>
<tr class="separator:a6664330cccc9dec81ac6288bd29c20c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22dd1d91e9eb3d3bab69abed43be3aee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a22dd1d91e9eb3d3bab69abed43be3aee"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> size_t <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a22dd1d91e9eb3d3bab69abed43be3aee">get_func_qty</a> (void)</td></tr>
<tr class="memdesc:a22dd1d91e9eb3d3bab69abed43be3aee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get total number of functions in the program. <br /></td></tr>
<tr class="separator:a22dd1d91e9eb3d3bab69abed43be3aee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1f8b164bb6112dbc21bfecd4763c58a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#aa1f8b164bb6112dbc21bfecd4763c58a">get_func_num</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="memdesc:aa1f8b164bb6112dbc21bfecd4763c58a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get ordinal number of a function.  <a href="#aa1f8b164bb6112dbc21bfecd4763c58a">More...</a><br /></td></tr>
<tr class="separator:aa1f8b164bb6112dbc21bfecd4763c58a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed19494fa9d9d743cfea120af7b8deb5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="classfunc__t.html">func_t</a> *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#aed19494fa9d9d743cfea120af7b8deb5">get_prev_func</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="memdesc:aed19494fa9d9d743cfea120af7b8deb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get pointer to the previous function.  <a href="#aed19494fa9d9d743cfea120af7b8deb5">More...</a><br /></td></tr>
<tr class="separator:aed19494fa9d9d743cfea120af7b8deb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef63013a60578886a19b1bbfef2fe234"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="classfunc__t.html">func_t</a> *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#aef63013a60578886a19b1bbfef2fe234">get_next_func</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="memdesc:aef63013a60578886a19b1bbfef2fe234"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get pointer to the next function.  <a href="#aef63013a60578886a19b1bbfef2fe234">More...</a><br /></td></tr>
<tr class="separator:aef63013a60578886a19b1bbfef2fe234"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11fc740f61121d71d6958030fa06e677"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a11fc740f61121d71d6958030fa06e677">get_func_ranges</a> (rangeset_t *ranges, <a class="el" href="classfunc__t.html">func_t</a> *pfn)</td></tr>
<tr class="memdesc:a11fc740f61121d71d6958030fa06e677"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get function ranges.  <a href="#a11fc740f61121d71d6958030fa06e677">More...</a><br /></td></tr>
<tr class="separator:a11fc740f61121d71d6958030fa06e677"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeadbb1e0b11eae2e34730ede51d1ed38"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#aeadbb1e0b11eae2e34730ede51d1ed38">get_func_cmt</a> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *buf, const <a class="el" href="classfunc__t.html">func_t</a> *pfn, bool repeatable)</td></tr>
<tr class="memdesc:aeadbb1e0b11eae2e34730ede51d1ed38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get function comment.  <a href="#aeadbb1e0b11eae2e34730ede51d1ed38">More...</a><br /></td></tr>
<tr class="separator:aeadbb1e0b11eae2e34730ede51d1ed38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49070bb3dbf2ca55720d20db3a44c9f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a49070bb3dbf2ca55720d20db3a44c9f0">set_func_cmt</a> (const <a class="el" href="classfunc__t.html">func_t</a> *pfn, const char *cmt, bool repeatable)</td></tr>
<tr class="memdesc:a49070bb3dbf2ca55720d20db3a44c9f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set function comment.  <a href="#a49070bb3dbf2ca55720d20db3a44c9f0">More...</a><br /></td></tr>
<tr class="separator:a49070bb3dbf2ca55720d20db3a44c9f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a184f1967b3f6e7d00e02e4d97a41e836"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a184f1967b3f6e7d00e02e4d97a41e836">update_func</a> (<a class="el" href="classfunc__t.html">func_t</a> *pfn)</td></tr>
<tr class="memdesc:a184f1967b3f6e7d00e02e4d97a41e836"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update information about a function in the database (<a class="el" href="classfunc__t.html" title="A function is a set of continuous ranges of addresses with characteristics. ">func_t</a>).  <a href="#a184f1967b3f6e7d00e02e4d97a41e836">More...</a><br /></td></tr>
<tr class="separator:a184f1967b3f6e7d00e02e4d97a41e836"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55d69de76e1743db96e0d7ecf7909dc2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a55d69de76e1743db96e0d7ecf7909dc2">add_func_ex</a> (<a class="el" href="classfunc__t.html">func_t</a> *pfn)</td></tr>
<tr class="memdesc:a55d69de76e1743db96e0d7ecf7909dc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a new function.  <a href="#a55d69de76e1743db96e0d7ecf7909dc2">More...</a><br /></td></tr>
<tr class="separator:a55d69de76e1743db96e0d7ecf7909dc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43dfcfff5941536b5b16d5ea160cce8a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a43dfcfff5941536b5b16d5ea160cce8a">add_func</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea1, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea2=<a class="el" href="pro_8h.html#a63a7c1cde5fb0cf0d0023d55c742dd4f">BADADDR</a>)</td></tr>
<tr class="memdesc:a43dfcfff5941536b5b16d5ea160cce8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a new function.  <a href="#a43dfcfff5941536b5b16d5ea160cce8a">More...</a><br /></td></tr>
<tr class="separator:a43dfcfff5941536b5b16d5ea160cce8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8a9f424e35fdf6393b44bf35f36832f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#ac8a9f424e35fdf6393b44bf35f36832f">del_func</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="memdesc:ac8a9f424e35fdf6393b44bf35f36832f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a function.  <a href="#ac8a9f424e35fdf6393b44bf35f36832f">More...</a><br /></td></tr>
<tr class="separator:ac8a9f424e35fdf6393b44bf35f36832f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea0e8d3e2712894d3b4b3fdea39cd5c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#aea0e8d3e2712894d3b4b3fdea39cd5c3">set_func_start</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> newstart)</td></tr>
<tr class="memdesc:aea0e8d3e2712894d3b4b3fdea39cd5c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move function chunk start address.  <a href="#aea0e8d3e2712894d3b4b3fdea39cd5c3">More...</a><br /></td></tr>
<tr class="separator:aea0e8d3e2712894d3b4b3fdea39cd5c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7548171011040223d66c8740d7098d32"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a7548171011040223d66c8740d7098d32">set_func_end</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> newend)</td></tr>
<tr class="memdesc:a7548171011040223d66c8740d7098d32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move function chunk end address.  <a href="#a7548171011040223d66c8740d7098d32">More...</a><br /></td></tr>
<tr class="separator:a7548171011040223d66c8740d7098d32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4ed5ff5471d43941271df7cb0a54cd0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#af4ed5ff5471d43941271df7cb0a54cd0">reanalyze_function</a> (<a class="el" href="classfunc__t.html">func_t</a> *pfn, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea1=0, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea2=<a class="el" href="pro_8h.html#a63a7c1cde5fb0cf0d0023d55c742dd4f">BADADDR</a>, bool analyze_parents=false)</td></tr>
<tr class="memdesc:af4ed5ff5471d43941271df7cb0a54cd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reanalyze a function.  <a href="#af4ed5ff5471d43941271df7cb0a54cd0">More...</a><br /></td></tr>
<tr class="separator:af4ed5ff5471d43941271df7cb0a54cd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af27a7eb0cc4e210f6ffa21e6aa06e589"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#af27a7eb0cc4e210f6ffa21e6aa06e589">find_func_bounds</a> (<a class="el" href="classfunc__t.html">func_t</a> *nfn, int flags)</td></tr>
<tr class="memdesc:af27a7eb0cc4e210f6ffa21e6aa06e589"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine the boundaries of a new function.  <a href="#af27a7eb0cc4e210f6ffa21e6aa06e589">More...</a><br /></td></tr>
<tr class="separator:af27a7eb0cc4e210f6ffa21e6aa06e589"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaee61d9e3082565c8e941377a5b150c5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#aaee61d9e3082565c8e941377a5b150c5">get_func_name</a> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *out, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="memdesc:aaee61d9e3082565c8e941377a5b150c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get function name.  <a href="#aaee61d9e3082565c8e941377a5b150c5">More...</a><br /></td></tr>
<tr class="separator:aaee61d9e3082565c8e941377a5b150c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1c60a7de477ea88c24a5cecf5722942"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#ac1c60a7de477ea88c24a5cecf5722942">get_func_bitness</a> (const <a class="el" href="classfunc__t.html">func_t</a> *pfn)</td></tr>
<tr class="memdesc:ac1c60a7de477ea88c24a5cecf5722942"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get function bitness (which is equal to the function segment bitness).  <a href="#ac1c60a7de477ea88c24a5cecf5722942">More...</a><br /></td></tr>
<tr class="separator:ac1c60a7de477ea88c24a5cecf5722942"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9717f0f01699931eb94276d3c529b34c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9717f0f01699931eb94276d3c529b34c"></a>
int <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a9717f0f01699931eb94276d3c529b34c">get_func_bits</a> (const <a class="el" href="classfunc__t.html">func_t</a> *pfn)</td></tr>
<tr class="memdesc:a9717f0f01699931eb94276d3c529b34c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get number of bits in the function addressing. <br /></td></tr>
<tr class="separator:a9717f0f01699931eb94276d3c529b34c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af46de47bb9d73604bde35ed252b638cd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af46de47bb9d73604bde35ed252b638cd"></a>
int <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#af46de47bb9d73604bde35ed252b638cd">get_func_bytes</a> (const <a class="el" href="classfunc__t.html">func_t</a> *pfn)</td></tr>
<tr class="memdesc:af46de47bb9d73604bde35ed252b638cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get number of bytes in the function addressing. <br /></td></tr>
<tr class="separator:af46de47bb9d73604bde35ed252b638cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af43324a92becc4d10ff14387339d68e0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af43324a92becc4d10ff14387339d68e0"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#af43324a92becc4d10ff14387339d68e0">is_visible_func</a> (<a class="el" href="classfunc__t.html">func_t</a> *pfn)</td></tr>
<tr class="memdesc:af43324a92becc4d10ff14387339d68e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the function visible (not hidden)? <br /></td></tr>
<tr class="separator:af43324a92becc4d10ff14387339d68e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc3196f5735da224e4f5a42dd30f2786"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adc3196f5735da224e4f5a42dd30f2786"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#adc3196f5735da224e4f5a42dd30f2786">is_finally_visible_func</a> (<a class="el" href="classfunc__t.html">func_t</a> *pfn)</td></tr>
<tr class="memdesc:adc3196f5735da224e4f5a42dd30f2786"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the function visible (event after considering <a class="el" href="group___s_w___c.html#gabb9142b4f649257f9b5f789b689cbf6b" title="show hidden functions ">SW_SHHID_FUNC</a>)? <br /></td></tr>
<tr class="separator:adc3196f5735da224e4f5a42dd30f2786"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5b430fb82b48859c63faf67a73c2200"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae5b430fb82b48859c63faf67a73c2200"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#ae5b430fb82b48859c63faf67a73c2200">set_visible_func</a> (<a class="el" href="classfunc__t.html">func_t</a> *pfn, bool visible)</td></tr>
<tr class="memdesc:ae5b430fb82b48859c63faf67a73c2200"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set visibility of function. <br /></td></tr>
<tr class="separator:ae5b430fb82b48859c63faf67a73c2200"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ce3d589a62220b86154f5b43bd9d51a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a1ce3d589a62220b86154f5b43bd9d51a">set_func_name_if_jumpfunc</a> (<a class="el" href="classfunc__t.html">func_t</a> *pfn, const char *oldname)</td></tr>
<tr class="memdesc:a1ce3d589a62220b86154f5b43bd9d51a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Give a meaningful name to function if it consists of only 'jump' instruction.  <a href="#a1ce3d589a62220b86154f5b43bd9d51a">More...</a><br /></td></tr>
<tr class="separator:a1ce3d589a62220b86154f5b43bd9d51a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3819926f1d7697e0eb65015230c1e3d7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a3819926f1d7697e0eb65015230c1e3d7">calc_thunk_func_target</a> (<a class="el" href="classfunc__t.html">func_t</a> *pfn, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> *fptr)</td></tr>
<tr class="memdesc:a3819926f1d7697e0eb65015230c1e3d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate target of a thunk function.  <a href="#a3819926f1d7697e0eb65015230c1e3d7">More...</a><br /></td></tr>
<tr class="separator:a3819926f1d7697e0eb65015230c1e3d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae527c8e35dbe6163ea66f8709a7bfafa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#ae527c8e35dbe6163ea66f8709a7bfafa">func_does_return</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> callee)</td></tr>
<tr class="memdesc:ae527c8e35dbe6163ea66f8709a7bfafa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does the function return?.  <a href="#ae527c8e35dbe6163ea66f8709a7bfafa">More...</a><br /></td></tr>
<tr class="separator:ae527c8e35dbe6163ea66f8709a7bfafa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65cb55474c9f4d9bbea12873dcf4fbcc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a65cb55474c9f4d9bbea12873dcf4fbcc">reanalyze_noret_flag</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="memdesc:a65cb55474c9f4d9bbea12873dcf4fbcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Plan to reanalyze noret flag.  <a href="#a65cb55474c9f4d9bbea12873dcf4fbcc">More...</a><br /></td></tr>
<tr class="separator:a65cb55474c9f4d9bbea12873dcf4fbcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f68e84613300162cc0d23e79250c4d9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a1f68e84613300162cc0d23e79250c4d9">set_noret_insn</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> insn_ea, bool noret)</td></tr>
<tr class="memdesc:a1f68e84613300162cc0d23e79250c4d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signal a non-returning instruction.  <a href="#a1f68e84613300162cc0d23e79250c4d9">More...</a><br /></td></tr>
<tr class="separator:a1f68e84613300162cc0d23e79250c4d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3062576bdeb6fb6fc123e74fc2939efb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="classfunc__t.html">func_t</a> *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a3062576bdeb6fb6fc123e74fc2939efb">get_fchunk</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="memdesc:a3062576bdeb6fb6fc123e74fc2939efb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get pointer to function chunk structure by address.  <a href="#a3062576bdeb6fb6fc123e74fc2939efb">More...</a><br /></td></tr>
<tr class="separator:a3062576bdeb6fb6fc123e74fc2939efb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c84a87f6299f0724f8f1883ca778620"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="classfunc__t.html">func_t</a> *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a4c84a87f6299f0724f8f1883ca778620">getn_fchunk</a> (int n)</td></tr>
<tr class="memdesc:a4c84a87f6299f0724f8f1883ca778620"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get pointer to function chunk structure by number.  <a href="#a4c84a87f6299f0724f8f1883ca778620">More...</a><br /></td></tr>
<tr class="separator:a4c84a87f6299f0724f8f1883ca778620"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa10ff5e98bb6bb48e48cadf69cadd54f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa10ff5e98bb6bb48e48cadf69cadd54f"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> size_t <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#aa10ff5e98bb6bb48e48cadf69cadd54f">get_fchunk_qty</a> (void)</td></tr>
<tr class="memdesc:aa10ff5e98bb6bb48e48cadf69cadd54f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get total number of function chunks in the program. <br /></td></tr>
<tr class="separator:aa10ff5e98bb6bb48e48cadf69cadd54f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5fe102694ea5e127bfb3f81d65cf39c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#aa5fe102694ea5e127bfb3f81d65cf39c">get_fchunk_num</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="memdesc:aa5fe102694ea5e127bfb3f81d65cf39c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get ordinal number of a function chunk in the global list of function chunks.  <a href="#aa5fe102694ea5e127bfb3f81d65cf39c">More...</a><br /></td></tr>
<tr class="separator:aa5fe102694ea5e127bfb3f81d65cf39c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1a94addf4c657d4a718318936d505df"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="classfunc__t.html">func_t</a> *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#ae1a94addf4c657d4a718318936d505df">get_prev_fchunk</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="memdesc:ae1a94addf4c657d4a718318936d505df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get pointer to the previous function chunk in the global list.  <a href="#ae1a94addf4c657d4a718318936d505df">More...</a><br /></td></tr>
<tr class="separator:ae1a94addf4c657d4a718318936d505df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade067f329670a1a2b4f4bd6b6dfacf20"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="classfunc__t.html">func_t</a> *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#ade067f329670a1a2b4f4bd6b6dfacf20">get_next_fchunk</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="memdesc:ade067f329670a1a2b4f4bd6b6dfacf20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get pointer to the next function chunk in the global list.  <a href="#ade067f329670a1a2b4f4bd6b6dfacf20">More...</a><br /></td></tr>
<tr class="separator:ade067f329670a1a2b4f4bd6b6dfacf20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52f9ee11e7bb8a270a3cbe3714eeb5fd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a52f9ee11e7bb8a270a3cbe3714eeb5fd">append_func_tail</a> (<a class="el" href="classfunc__t.html">func_t</a> *pfn, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea1, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea2)</td></tr>
<tr class="memdesc:a52f9ee11e7bb8a270a3cbe3714eeb5fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Append a new tail chunk to the function definition.  <a href="#a52f9ee11e7bb8a270a3cbe3714eeb5fd">More...</a><br /></td></tr>
<tr class="separator:a52f9ee11e7bb8a270a3cbe3714eeb5fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7c614485023e2bb894f6c304244e120"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#ae7c614485023e2bb894f6c304244e120">remove_func_tail</a> (<a class="el" href="classfunc__t.html">func_t</a> *pfn, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> tail_ea)</td></tr>
<tr class="memdesc:ae7c614485023e2bb894f6c304244e120"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a function tail.  <a href="#ae7c614485023e2bb894f6c304244e120">More...</a><br /></td></tr>
<tr class="separator:ae7c614485023e2bb894f6c304244e120"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0111894398bef00303b816851f54a27"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#ac0111894398bef00303b816851f54a27">set_tail_owner</a> (<a class="el" href="classfunc__t.html">func_t</a> *fnt, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> func_start)</td></tr>
<tr class="memdesc:ac0111894398bef00303b816851f54a27"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a function as the possessing function of a function tail.  <a href="#ac0111894398bef00303b816851f54a27">More...</a><br /></td></tr>
<tr class="separator:ac0111894398bef00303b816851f54a27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2c129ea71896e1f2f7fb6c7ad122a37"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad2c129ea71896e1f2f7fb6c7ad122a37"></a>
bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#ad2c129ea71896e1f2f7fb6c7ad122a37">f_any</a> (<a class="el" href="pro_8h.html#a55dd00e03168fb5180830e87ef0a2c57">flags_t</a>, void *)</td></tr>
<tr class="memdesc:ad2c129ea71896e1f2f7fb6c7ad122a37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function to accept any address. <br /></td></tr>
<tr class="separator:ad2c129ea71896e1f2f7fb6c7ad122a37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8d474ef2ca5f96d214640ffb05c3fae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#ae8d474ef2ca5f96d214640ffb05c3fae">iterate_func_chunks</a> (<a class="el" href="classfunc__t.html">func_t</a> *pfn, void(<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> *func)(<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea1, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea2, void *ud), void *ud=NULL, bool include_parents=false)</td></tr>
<tr class="memdesc:ae8d474ef2ca5f96d214640ffb05c3fae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to iterate function chunks (all of them including the entry chunk)  <a href="#ae8d474ef2ca5f96d214640ffb05c3fae">More...</a><br /></td></tr>
<tr class="separator:ae8d474ef2ca5f96d214640ffb05c3fae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21aa2dc515f7b37cbdc393eb789d9c4d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a21aa2dc515f7b37cbdc393eb789d9c4d">plan_to_apply_idasgn</a> (const char *fname)</td></tr>
<tr class="memdesc:a21aa2dc515f7b37cbdc393eb789d9c4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a signature file to the list of planned signature files.  <a href="#a21aa2dc515f7b37cbdc393eb789d9c4d">More...</a><br /></td></tr>
<tr class="separator:a21aa2dc515f7b37cbdc393eb789d9c4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11aee0876bd2f234cbb3cc11aa69dbca"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a11aee0876bd2f234cbb3cc11aa69dbca">apply_idasgn_to</a> (const char *signame, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea, bool is_startup)</td></tr>
<tr class="memdesc:a11aee0876bd2f234cbb3cc11aa69dbca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply a signature file to the specified address.  <a href="#a11aee0876bd2f234cbb3cc11aa69dbca">More...</a><br /></td></tr>
<tr class="separator:a11aee0876bd2f234cbb3cc11aa69dbca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a053a76d76510369e88182b93c1289ce8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a053a76d76510369e88182b93c1289ce8">get_idasgn_qty</a> (void)</td></tr>
<tr class="memdesc:a053a76d76510369e88182b93c1289ce8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get number of signatures in the list of planned and applied signatures.  <a href="#a053a76d76510369e88182b93c1289ce8">More...</a><br /></td></tr>
<tr class="separator:a053a76d76510369e88182b93c1289ce8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bc01ee0b7011b7cc2d42ce314bfe0ef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a1bc01ee0b7011b7cc2d42ce314bfe0ef">get_current_idasgn</a> (void)</td></tr>
<tr class="memdesc:a1bc01ee0b7011b7cc2d42ce314bfe0ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get number of the the current signature.  <a href="#a1bc01ee0b7011b7cc2d42ce314bfe0ef">More...</a><br /></td></tr>
<tr class="separator:a1bc01ee0b7011b7cc2d42ce314bfe0ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adac32c36269d53db5a14273b7ee09d03"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#adac32c36269d53db5a14273b7ee09d03">calc_idasgn_state</a> (int n)</td></tr>
<tr class="memdesc:adac32c36269d53db5a14273b7ee09d03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get state of a signature in the list of planned signatures.  <a href="#adac32c36269d53db5a14273b7ee09d03">More...</a><br /></td></tr>
<tr class="separator:adac32c36269d53db5a14273b7ee09d03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3431fb53c0c6e4ec9519348d60722a5b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a3431fb53c0c6e4ec9519348d60722a5b">del_idasgn</a> (int n)</td></tr>
<tr class="memdesc:a3431fb53c0c6e4ec9519348d60722a5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove signature from the list of planned signatures.  <a href="#a3431fb53c0c6e4ec9519348d60722a5b">More...</a><br /></td></tr>
<tr class="separator:a3431fb53c0c6e4ec9519348d60722a5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a236eb154300e347420506e61ec20f76f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#a56f1a81c92849566ae864511088eb7e8">int32</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a236eb154300e347420506e61ec20f76f">get_idasgn_desc</a> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *signame, <a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *optlibs, int n)</td></tr>
<tr class="memdesc:a236eb154300e347420506e61ec20f76f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get information about a signature in the list.  <a href="#a236eb154300e347420506e61ec20f76f">More...</a><br /></td></tr>
<tr class="separator:a236eb154300e347420506e61ec20f76f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c6ffc0f0c9bb8ee8ce4c01474cc5e31"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> idasgn_t *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a9c6ffc0f0c9bb8ee8ce4c01474cc5e31">get_idasgn_header_by_short_name</a> (const char *name)</td></tr>
<tr class="memdesc:a9c6ffc0f0c9bb8ee8ce4c01474cc5e31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get idasgn header by a short signature name.  <a href="#a9c6ffc0f0c9bb8ee8ce4c01474cc5e31">More...</a><br /></td></tr>
<tr class="separator:a9c6ffc0f0c9bb8ee8ce4c01474cc5e31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad85bd713ec5c3fda0e79ca0203107c03"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#ad85bd713ec5c3fda0e79ca0203107c03">get_idasgn_title</a> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *buf, const char *name)</td></tr>
<tr class="memdesc:ad85bd713ec5c3fda0e79ca0203107c03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get full description of the signature by its short name.  <a href="#ad85bd713ec5c3fda0e79ca0203107c03">More...</a><br /></td></tr>
<tr class="separator:ad85bd713ec5c3fda0e79ca0203107c03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1c187a31ca0b6379001ed49babe03cc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#af1c187a31ca0b6379001ed49babe03cc">determine_rtl</a> (void)</td></tr>
<tr class="memdesc:af1c187a31ca0b6379001ed49babe03cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine compiler/vendor using the startup signatures.  <a href="#af1c187a31ca0b6379001ed49babe03cc">More...</a><br /></td></tr>
<tr class="separator:af1c187a31ca0b6379001ed49babe03cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a89d1f765c7d13738e85333473a2f6e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#a2a89d1f765c7d13738e85333473a2f6e">apply_startup_sig</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea, const char *startup)</td></tr>
<tr class="memdesc:a2a89d1f765c7d13738e85333473a2f6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply a startup signature file to the specified address.  <a href="#a2a89d1f765c7d13738e85333473a2f6e">More...</a><br /></td></tr>
<tr class="separator:a2a89d1f765c7d13738e85333473a2f6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb69ff17eadf468ac080c807027d5526"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#afb69ff17eadf468ac080c807027d5526">try_to_add_libfunc</a> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="memdesc:afb69ff17eadf468ac080c807027d5526"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply the currently loaded signature file to the specified address.  <a href="#afb69ff17eadf468ac080c807027d5526">More...</a><br /></td></tr>
<tr class="separator:afb69ff17eadf468ac080c807027d5526"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Get prev/next address in function</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Unlike <a class="el" href="classfunc__item__iterator__t.html" title="Class to enumerate all function instructions and data sorted by addresses. ">func_item_iterator_t</a> which always enumerates the main function chunk first, these functions respect linear address ordering.</p>
</div></td></tr>
<tr class="memitem:a30b0fd3f556586cb9f903142ff2448b1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a30b0fd3f556586cb9f903142ff2448b1"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>get_prev_func_addr</b> (<a class="el" href="classfunc__t.html">func_t</a> *pfn, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="separator:a30b0fd3f556586cb9f903142ff2448b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07e55b1b8a13fb277b458ce1929b2bb2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a07e55b1b8a13fb277b458ce1929b2bb2"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>get_next_func_addr</b> (<a class="el" href="classfunc__t.html">func_t</a> *pfn, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="separator:a07e55b1b8a13fb277b458ce1929b2bb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Functions to work with temporary register argument definitions </p>
</div></td></tr>
<tr class="memitem:a56f1df7669aedbf122627705a18a938a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a56f1df7669aedbf122627705a18a938a"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>read_regargs</b> (<a class="el" href="classfunc__t.html">func_t</a> *pfn)</td></tr>
<tr class="separator:a56f1df7669aedbf122627705a18a938a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2be8603ccd85da70fcd88dd69d43f477"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2be8603ccd85da70fcd88dd69d43f477"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>add_regarg</b> (<a class="el" href="classfunc__t.html">func_t</a> *pfn, int reg, const <a class="el" href="classtinfo__t.html">tinfo_t</a> &amp;tif, const char *name)</td></tr>
<tr class="separator:a2be8603ccd85da70fcd88dd69d43f477"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga9f89bd6c0cf00b4e346266627a5e5b3a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9f89bd6c0cf00b4e346266627a5e5b3a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___f_u_n_c__.html#ga9f89bd6c0cf00b4e346266627a5e5b3a">FUNC_NORET</a>&#160;&#160;&#160;0x00000001</td></tr>
<tr class="memdesc:ga9f89bd6c0cf00b4e346266627a5e5b3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function doesn't return. <br /></td></tr>
<tr class="separator:ga9f89bd6c0cf00b4e346266627a5e5b3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga96692fe2be20e5de1dd446a87d8424dd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga96692fe2be20e5de1dd446a87d8424dd"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___f_u_n_c__.html#ga96692fe2be20e5de1dd446a87d8424dd">FUNC_FAR</a>&#160;&#160;&#160;0x00000002</td></tr>
<tr class="memdesc:ga96692fe2be20e5de1dd446a87d8424dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Far function. <br /></td></tr>
<tr class="separator:ga96692fe2be20e5de1dd446a87d8424dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3ad36171134e3e021961c2849e6abfae"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3ad36171134e3e021961c2849e6abfae"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___f_u_n_c__.html#ga3ad36171134e3e021961c2849e6abfae">FUNC_LIB</a>&#160;&#160;&#160;0x00000004</td></tr>
<tr class="memdesc:ga3ad36171134e3e021961c2849e6abfae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Library function. <br /></td></tr>
<tr class="separator:ga3ad36171134e3e021961c2849e6abfae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga83eb9bcfdebfcce3aaf6e113665739b9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga83eb9bcfdebfcce3aaf6e113665739b9"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___f_u_n_c__.html#ga83eb9bcfdebfcce3aaf6e113665739b9">FUNC_STATICDEF</a>&#160;&#160;&#160;0x00000008</td></tr>
<tr class="memdesc:ga83eb9bcfdebfcce3aaf6e113665739b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Static function. <br /></td></tr>
<tr class="separator:ga83eb9bcfdebfcce3aaf6e113665739b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5c18a77caa51d78fcf13ae598fff4b7c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5c18a77caa51d78fcf13ae598fff4b7c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___f_u_n_c__.html#ga5c18a77caa51d78fcf13ae598fff4b7c">FUNC_FRAME</a>&#160;&#160;&#160;0x00000010</td></tr>
<tr class="memdesc:ga5c18a77caa51d78fcf13ae598fff4b7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function uses frame pointer (BP) <br /></td></tr>
<tr class="separator:ga5c18a77caa51d78fcf13ae598fff4b7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae34804c1dcd3a8d02c3c81b5b6b9ef65"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___f_u_n_c__.html#gae34804c1dcd3a8d02c3c81b5b6b9ef65">FUNC_USERFAR</a>&#160;&#160;&#160;0x00000020</td></tr>
<tr class="memdesc:gae34804c1dcd3a8d02c3c81b5b6b9ef65"><td class="mdescLeft">&#160;</td><td class="mdescRight">User has specified far-ness.  <a href="group___f_u_n_c__.html#gae34804c1dcd3a8d02c3c81b5b6b9ef65">More...</a><br /></td></tr>
<tr class="separator:gae34804c1dcd3a8d02c3c81b5b6b9ef65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga38d248bf1de00c5bb76bad8590070159"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga38d248bf1de00c5bb76bad8590070159"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___f_u_n_c__.html#ga38d248bf1de00c5bb76bad8590070159">FUNC_HIDDEN</a>&#160;&#160;&#160;0x00000040</td></tr>
<tr class="memdesc:ga38d248bf1de00c5bb76bad8590070159"><td class="mdescLeft">&#160;</td><td class="mdescRight">A hidden function chunk. <br /></td></tr>
<tr class="separator:ga38d248bf1de00c5bb76bad8590070159"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4c0d02377ae90e10869a3c9130a3d5f4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4c0d02377ae90e10869a3c9130a3d5f4"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___f_u_n_c__.html#ga4c0d02377ae90e10869a3c9130a3d5f4">FUNC_THUNK</a>&#160;&#160;&#160;0x00000080</td></tr>
<tr class="memdesc:ga4c0d02377ae90e10869a3c9130a3d5f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Thunk (jump) function. <br /></td></tr>
<tr class="separator:ga4c0d02377ae90e10869a3c9130a3d5f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga578cedfb8ef7408383fe739c57e35485"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga578cedfb8ef7408383fe739c57e35485"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___f_u_n_c__.html#ga578cedfb8ef7408383fe739c57e35485">FUNC_BOTTOMBP</a>&#160;&#160;&#160;0x00000100</td></tr>
<tr class="memdesc:ga578cedfb8ef7408383fe739c57e35485"><td class="mdescLeft">&#160;</td><td class="mdescRight">BP points to the bottom of the stack frame. <br /></td></tr>
<tr class="separator:ga578cedfb8ef7408383fe739c57e35485"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5642dcc557a7cc6237a5ad2b0f7518b3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___f_u_n_c__.html#ga5642dcc557a7cc6237a5ad2b0f7518b3">FUNC_NORET_PENDING</a>&#160;&#160;&#160;0x00200</td></tr>
<tr class="memdesc:ga5642dcc557a7cc6237a5ad2b0f7518b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function 'non-return' analysis must be performed.  <a href="group___f_u_n_c__.html#ga5642dcc557a7cc6237a5ad2b0f7518b3">More...</a><br /></td></tr>
<tr class="separator:ga5642dcc557a7cc6237a5ad2b0f7518b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga705fa62af6e2f9c71165c9e789e6db24"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___f_u_n_c__.html#ga705fa62af6e2f9c71165c9e789e6db24">FUNC_SP_READY</a>&#160;&#160;&#160;0x00000400</td></tr>
<tr class="memdesc:ga705fa62af6e2f9c71165c9e789e6db24"><td class="mdescLeft">&#160;</td><td class="mdescRight">SP-analysis has been performed.  <a href="group___f_u_n_c__.html#ga705fa62af6e2f9c71165c9e789e6db24">More...</a><br /></td></tr>
<tr class="separator:ga705fa62af6e2f9c71165c9e789e6db24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeda3bf9abb0f4029d6e258b878ef7d13"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___f_u_n_c__.html#gaeda3bf9abb0f4029d6e258b878ef7d13">FUNC_PURGED_OK</a>&#160;&#160;&#160;0x00004000</td></tr>
<tr class="memdesc:gaeda3bf9abb0f4029d6e258b878ef7d13"><td class="mdescLeft">&#160;</td><td class="mdescRight">'argsize' field has been validated.  <a href="group___f_u_n_c__.html#gaeda3bf9abb0f4029d6e258b878ef7d13">More...</a><br /></td></tr>
<tr class="separator:gaeda3bf9abb0f4029d6e258b878ef7d13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8193dd74d95481badc272c645e5dc910"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___f_u_n_c__.html#ga8193dd74d95481badc272c645e5dc910">FUNC_TAIL</a>&#160;&#160;&#160;0x00008000</td></tr>
<tr class="memdesc:ga8193dd74d95481badc272c645e5dc910"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is a function tail.  <a href="group___f_u_n_c__.html#ga8193dd74d95481badc272c645e5dc910">More...</a><br /></td></tr>
<tr class="separator:ga8193dd74d95481badc272c645e5dc910"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga49e802fd7fa28afa28c8685920ed2aa8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga49e802fd7fa28afa28c8685920ed2aa8"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_v_e___f_u_n_c__.html#ga49e802fd7fa28afa28c8685920ed2aa8">MOVE_FUNC_OK</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:ga49e802fd7fa28afa28c8685920ed2aa8"><td class="mdescLeft">&#160;</td><td class="mdescRight">ok <br /></td></tr>
<tr class="separator:ga49e802fd7fa28afa28c8685920ed2aa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaed7cff5af7aa06b571dc99bb3dc08d42"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaed7cff5af7aa06b571dc99bb3dc08d42"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_v_e___f_u_n_c__.html#gaed7cff5af7aa06b571dc99bb3dc08d42">MOVE_FUNC_NOCODE</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:gaed7cff5af7aa06b571dc99bb3dc08d42"><td class="mdescLeft">&#160;</td><td class="mdescRight">no instruction at 'newstart' <br /></td></tr>
<tr class="separator:gaed7cff5af7aa06b571dc99bb3dc08d42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga12adb873df28d8973afac8d9ca526233"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga12adb873df28d8973afac8d9ca526233"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_v_e___f_u_n_c__.html#ga12adb873df28d8973afac8d9ca526233">MOVE_FUNC_BADSTART</a>&#160;&#160;&#160;2</td></tr>
<tr class="memdesc:ga12adb873df28d8973afac8d9ca526233"><td class="mdescLeft">&#160;</td><td class="mdescRight">bad new start address <br /></td></tr>
<tr class="separator:ga12adb873df28d8973afac8d9ca526233"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga42b49a13caa3d3983e3a7e88b71bd9f2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga42b49a13caa3d3983e3a7e88b71bd9f2"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_v_e___f_u_n_c__.html#ga42b49a13caa3d3983e3a7e88b71bd9f2">MOVE_FUNC_NOFUNC</a>&#160;&#160;&#160;3</td></tr>
<tr class="memdesc:ga42b49a13caa3d3983e3a7e88b71bd9f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">no function at 'ea' <br /></td></tr>
<tr class="separator:ga42b49a13caa3d3983e3a7e88b71bd9f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga82a79967c372781217e27fef006c4763"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga82a79967c372781217e27fef006c4763"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_v_e___f_u_n_c__.html#ga82a79967c372781217e27fef006c4763">MOVE_FUNC_REFUSED</a>&#160;&#160;&#160;4</td></tr>
<tr class="memdesc:ga82a79967c372781217e27fef006c4763"><td class="mdescLeft">&#160;</td><td class="mdescRight">a plugin refused the action <br /></td></tr>
<tr class="separator:ga82a79967c372781217e27fef006c4763"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadc06fe8ec5d4434488efb28d79205bdd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadc06fe8ec5d4434488efb28d79205bdd"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___f_i_n_d___f_u_n_c___f.html#gadc06fe8ec5d4434488efb28d79205bdd">FIND_FUNC_NORMAL</a>&#160;&#160;&#160;0x0000</td></tr>
<tr class="memdesc:gadc06fe8ec5d4434488efb28d79205bdd"><td class="mdescLeft">&#160;</td><td class="mdescRight">stop processing if undefined byte is encountered <br /></td></tr>
<tr class="separator:gadc06fe8ec5d4434488efb28d79205bdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga625d181ea2205e5fe3a844f61f1bfca6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga625d181ea2205e5fe3a844f61f1bfca6"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___f_i_n_d___f_u_n_c___f.html#ga625d181ea2205e5fe3a844f61f1bfca6">FIND_FUNC_DEFINE</a>&#160;&#160;&#160;0x0001</td></tr>
<tr class="memdesc:ga625d181ea2205e5fe3a844f61f1bfca6"><td class="mdescLeft">&#160;</td><td class="mdescRight">create instruction if undefined byte is encountered <br /></td></tr>
<tr class="separator:ga625d181ea2205e5fe3a844f61f1bfca6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1f9d638c1a974a95cfaa9ee750cef097"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___f_i_n_d___f_u_n_c___f.html#ga1f9d638c1a974a95cfaa9ee750cef097">FIND_FUNC_IGNOREFN</a>&#160;&#160;&#160;0x0002</td></tr>
<tr class="memdesc:ga1f9d638c1a974a95cfaa9ee750cef097"><td class="mdescLeft">&#160;</td><td class="mdescRight">ignore existing function boundaries.  <a href="group___f_i_n_d___f_u_n_c___f.html#ga1f9d638c1a974a95cfaa9ee750cef097">More...</a><br /></td></tr>
<tr class="separator:ga1f9d638c1a974a95cfaa9ee750cef097"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6c9d7a5331e580e06b9b3ce911f635d7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___f_i_n_d___f_u_n_c___f.html#ga6c9d7a5331e580e06b9b3ce911f635d7">FIND_FUNC_KEEPBD</a>&#160;&#160;&#160;0x0004</td></tr>
<tr class="memdesc:ga6c9d7a5331e580e06b9b3ce911f635d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">do not modify incoming function boundaries,  <a href="group___f_i_n_d___f_u_n_c___f.html#ga6c9d7a5331e580e06b9b3ce911f635d7">More...</a><br /></td></tr>
<tr class="separator:ga6c9d7a5331e580e06b9b3ce911f635d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3e201eff6859ad0590bbe4db125570f0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___f_i_n_d___f_u_n_c___r.html#ga3e201eff6859ad0590bbe4db125570f0">FIND_FUNC_UNDEF</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:ga3e201eff6859ad0590bbe4db125570f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">function has instructions that pass execution flow to unexplored bytes.  <a href="group___f_i_n_d___f_u_n_c___r.html#ga3e201eff6859ad0590bbe4db125570f0">More...</a><br /></td></tr>
<tr class="separator:ga3e201eff6859ad0590bbe4db125570f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadc3153bb9e99648e6306129e5654b0b2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadc3153bb9e99648e6306129e5654b0b2"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___f_i_n_d___f_u_n_c___r.html#gadc3153bb9e99648e6306129e5654b0b2">FIND_FUNC_OK</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:gadc3153bb9e99648e6306129e5654b0b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">ok, 'nfn' is ready for <a class="el" href="funcs_8hpp.html#a43dfcfff5941536b5b16d5ea160cce8a" title="Add a new function. ">add_func()</a> <br /></td></tr>
<tr class="separator:gadc3153bb9e99648e6306129e5654b0b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae1c77ab371a3816e3d90f1f9f48710bd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___f_i_n_d___f_u_n_c___r.html#gae1c77ab371a3816e3d90f1f9f48710bd">FIND_FUNC_EXIST</a>&#160;&#160;&#160;2</td></tr>
<tr class="memdesc:gae1c77ab371a3816e3d90f1f9f48710bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">function exists already.  <a href="group___f_i_n_d___f_u_n_c___r.html#gae1c77ab371a3816e3d90f1f9f48710bd">More...</a><br /></td></tr>
<tr class="separator:gae1c77ab371a3816e3d90f1f9f48710bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbc5031907dd057a3d76ff9a19fba350"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="funcs_8hpp.html#acbc5031907dd057a3d76ff9a19fba350">DECLARE_FUNC_ITERATORS</a>(prefix)</td></tr>
<tr class="memdesc:acbc5031907dd057a3d76ff9a19fba350"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declare helper functions for <a class="el" href="classfunc__item__iterator__t.html" title="Class to enumerate all function instructions and data sorted by addresses. ">func_item_iterator_t</a>.  <a href="#acbc5031907dd057a3d76ff9a19fba350">More...</a><br /></td></tr>
<tr class="separator:acbc5031907dd057a3d76ff9a19fba350"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac254d7fc6f7d0f1fc23d9ba2b9b0d7f5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac254d7fc6f7d0f1fc23d9ba2b9b0d7f5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___i_d_a_s_g_n__.html#gac254d7fc6f7d0f1fc23d9ba2b9b0d7f5">IDASGN_OK</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:gac254d7fc6f7d0f1fc23d9ba2b9b0d7f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">ok <br /></td></tr>
<tr class="separator:gac254d7fc6f7d0f1fc23d9ba2b9b0d7f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadccd43014c7fe84025391684eca0c483"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadccd43014c7fe84025391684eca0c483"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___i_d_a_s_g_n__.html#gadccd43014c7fe84025391684eca0c483">IDASGN_BADARG</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:gadccd43014c7fe84025391684eca0c483"><td class="mdescLeft">&#160;</td><td class="mdescRight">bad number of signature <br /></td></tr>
<tr class="separator:gadccd43014c7fe84025391684eca0c483"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0ed1e8d15a128423ad7e6ec66a3b1084"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0ed1e8d15a128423ad7e6ec66a3b1084"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___i_d_a_s_g_n__.html#ga0ed1e8d15a128423ad7e6ec66a3b1084">IDASGN_APPLIED</a>&#160;&#160;&#160;2</td></tr>
<tr class="memdesc:ga0ed1e8d15a128423ad7e6ec66a3b1084"><td class="mdescLeft">&#160;</td><td class="mdescRight">signature is already applied <br /></td></tr>
<tr class="separator:ga0ed1e8d15a128423ad7e6ec66a3b1084"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3cd1a2f59f129c3409b4ba7067671c26"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3cd1a2f59f129c3409b4ba7067671c26"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___i_d_a_s_g_n__.html#ga3cd1a2f59f129c3409b4ba7067671c26">IDASGN_CURRENT</a>&#160;&#160;&#160;3</td></tr>
<tr class="memdesc:ga3cd1a2f59f129c3409b4ba7067671c26"><td class="mdescLeft">&#160;</td><td class="mdescRight">signature is currently being applied <br /></td></tr>
<tr class="separator:ga3cd1a2f59f129c3409b4ba7067671c26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5fb5f33fa63a75ff1c34d52806419490"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5fb5f33fa63a75ff1c34d52806419490"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___i_d_a_s_g_n__.html#ga5fb5f33fa63a75ff1c34d52806419490">IDASGN_PLANNED</a>&#160;&#160;&#160;4</td></tr>
<tr class="memdesc:ga5fb5f33fa63a75ff1c34d52806419490"><td class="mdescLeft">&#160;</td><td class="mdescRight">signature is planned to be applied <br /></td></tr>
<tr class="separator:ga5fb5f33fa63a75ff1c34d52806419490"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7fd057e3133f0f2ae254f8b12822cc88"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7fd057e3133f0f2ae254f8b12822cc88"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___l_i_b_f_u_n_c__.html#ga7fd057e3133f0f2ae254f8b12822cc88">LIBFUNC_FOUND</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:ga7fd057e3133f0f2ae254f8b12822cc88"><td class="mdescLeft">&#160;</td><td class="mdescRight">ok, library function is found <br /></td></tr>
<tr class="separator:ga7fd057e3133f0f2ae254f8b12822cc88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab0237fbae98b51bc7604039785fc80cf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab0237fbae98b51bc7604039785fc80cf"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___l_i_b_f_u_n_c__.html#gab0237fbae98b51bc7604039785fc80cf">LIBFUNC_NONE</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:gab0237fbae98b51bc7604039785fc80cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">no, this is not a library function <br /></td></tr>
<tr class="separator:gab0237fbae98b51bc7604039785fc80cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6ec13a8da35ad737bd87bd1ce0083602"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6ec13a8da35ad737bd87bd1ce0083602"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___l_i_b_f_u_n_c__.html#ga6ec13a8da35ad737bd87bd1ce0083602">LIBFUNC_DELAY</a>&#160;&#160;&#160;2</td></tr>
<tr class="memdesc:ga6ec13a8da35ad737bd87bd1ce0083602"><td class="mdescLeft">&#160;</td><td class="mdescRight">no decision because of lack of information <br /></td></tr>
<tr class="separator:ga6ec13a8da35ad737bd87bd1ce0083602"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="acbc5031907dd057a3d76ff9a19fba350"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECLARE_FUNC_ITERATORS</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">prefix</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">prefix <span class="keywordtype">bool</span> <a class="code" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> func_tail_iterator_set(<a class="code" href="classfunc__tail__iterator__t.html">func_tail_iterator_t</a> *fti, <a class="code" href="classfunc__t.html">func_t</a> *pfn, <a class="code" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea);\</div>
<div class="line">prefix <span class="keywordtype">bool</span> <a class="code" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> func_tail_iterator_set_ea(<a class="code" href="classfunc__tail__iterator__t.html">func_tail_iterator_t</a> *fti, <a class="code" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea);\</div>
<div class="line">prefix <span class="keywordtype">bool</span> <a class="code" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> func_parent_iterator_set(<a class="code" href="classfunc__parent__iterator__t.html">func_parent_iterator_t</a> *fpi, <a class="code" href="classfunc__t.html">func_t</a> *pfn);\</div>
<div class="line">prefix <span class="keywordtype">bool</span> <a class="code" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> func_item_iterator_next(<a class="code" href="classfunc__item__iterator__t.html">func_item_iterator_t</a> *fii, <a class="code" href="bytes_8hpp.html#ac7890d524959057570f4a60a4f8b42c6">testf_t</a> *testf, <span class="keywordtype">void</span> *ud);\</div>
<div class="line">prefix <span class="keywordtype">bool</span> <a class="code" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> func_item_iterator_prev(<a class="code" href="classfunc__item__iterator__t.html">func_item_iterator_t</a> *fii, <a class="code" href="bytes_8hpp.html#ac7890d524959057570f4a60a4f8b42c6">testf_t</a> *testf, <span class="keywordtype">void</span> *ud);\</div>
<div class="line">prefix <span class="keywordtype">bool</span> <a class="code" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> func_item_iterator_decode_prev_insn(<a class="code" href="classfunc__item__iterator__t.html">func_item_iterator_t</a> *fii, <a class="code" href="classinsn__t.html">insn_t</a> *out); \</div>
<div class="line">prefix <span class="keywordtype">bool</span> <a class="code" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> func_item_iterator_decode_preceding_insn(<a class="code" href="classfunc__item__iterator__t.html">func_item_iterator_t</a> *fii, <a class="code" href="classqvector.html">eavec_t</a> *visited, <span class="keywordtype">bool</span> *p_farref, <a class="code" href="classinsn__t.html">insn_t</a> *out);</div>
<div class="ttc" id="bytes_8hpp_html_ac7890d524959057570f4a60a4f8b42c6"><div class="ttname"><a href="bytes_8hpp.html#ac7890d524959057570f4a60a4f8b42c6">testf_t</a></div><div class="ttdeci">bool idaapi testf_t(flags_t flags, void *ud)</div><div class="ttdoc">Flag tester - see next_that(), prev_that() </div><div class="ttdef"><b>Definition:</b> bytes.hpp:112</div></div>
<div class="ttc" id="classfunc__item__iterator__t_html"><div class="ttname"><a href="classfunc__item__iterator__t.html">func_item_iterator_t</a></div><div class="ttdoc">Class to enumerate all function instructions and data sorted by addresses. </div><div class="ttdef"><b>Definition:</b> funcs.hpp:715</div></div>
<div class="ttc" id="classinsn__t_html"><div class="ttname"><a href="classinsn__t.html">insn_t</a></div><div class="ttdef"><b>Definition:</b> ua.hpp:346</div></div>
<div class="ttc" id="pro_8h_html_a7b0aeaed04e477c02cf8ea3452002d1a"><div class="ttname"><a href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a></div><div class="ttdeci">uint32 ea_t</div><div class="ttdoc">effective address </div><div class="ttdef"><b>Definition:</b> pro.h:408</div></div>
<div class="ttc" id="classfunc__tail__iterator__t_html"><div class="ttname"><a href="classfunc__tail__iterator__t.html">func_tail_iterator_t</a></div><div class="ttdoc">Class to enumerate all function tails sorted by addresses. </div><div class="ttdef"><b>Definition:</b> funcs.hpp:643</div></div>
<div class="ttc" id="pro_8h_html_a176294e75f953787714b9d08ffa89adf"><div class="ttname"><a href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a></div><div class="ttdeci">#define ida_export</div><div class="ttdoc">functions marked with this keyword are available as part of the IDA SDK </div><div class="ttdef"><b>Definition:</b> pro.h:259</div></div>
<div class="ttc" id="classfunc__t_html"><div class="ttname"><a href="classfunc__t.html">func_t</a></div><div class="ttdoc">A function is a set of continuous ranges of addresses with characteristics. </div><div class="ttdef"><b>Definition:</b> funcs.hpp:56</div></div>
<div class="ttc" id="classfunc__parent__iterator__t_html"><div class="ttname"><a href="classfunc__parent__iterator__t.html">func_parent_iterator_t</a></div><div class="ttdoc">Class to enumerate all function parents sorted by addresses. </div><div class="ttdef"><b>Definition:</b> funcs.hpp:765</div></div>
<div class="ttc" id="classqvector_html"><div class="ttname"><a href="classqvector.html">qvector</a></div><div class="ttdoc">Reimplementation of vector class from STL. </div><div class="ttdef"><b>Definition:</b> pro.h:1646</div></div>
</div><!-- fragment -->
<p>Declare helper functions for <a class="el" href="classfunc__item__iterator__t.html" title="Class to enumerate all function instructions and data sorted by addresses. ">func_item_iterator_t</a>. </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a381aa5ad285df1295afbe5a70825dbf4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> lock_func_range </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classfunc__t.html">func_t</a> *&#160;</td>
          <td class="paramname"><em>pfn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>lock</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Lock function pointer Locked pointers are guaranteed to remain valid until they are unlocked. </p>
<p>Ranges with locked pointers can not be deleted or moved. </p>

</div>
</div>
<a class="anchor" id="af9fec9907dd6b2d3e737997a0251032f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="classfunc__t.html">func_t</a>* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_func </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get pointer to function structure by address. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ea</td><td>any address in a function </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ptr to a function or NULL. This function returns a function entry chunk. </dd></dl>

</div>
</div>
<a class="anchor" id="a3fdde3cac23887c5c536ae79d2f9093b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_func_chunknum </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classfunc__t.html">func_t</a> *&#160;</td>
          <td class="paramname"><em>pfn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the containing tail chunk of 'ea'. </p>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">-1</td><td>means 'does not contain ea' </td></tr>
    <tr><td class="paramname">0</td><td>means the 'pfn' itself contains ea </td></tr>
    <tr><td class="paramname">&gt;0</td><td>the number of the containing function tail chunk </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6664330cccc9dec81ac6288bd29c20c3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="classfunc__t.html">func_t</a>* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> getn_func </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get pointer to function structure by number. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">n</td><td>number of function, is in range 0..<a class="el" href="funcs_8hpp.html#a22dd1d91e9eb3d3bab69abed43be3aee" title="Get total number of functions in the program. ">get_func_qty()</a>-1 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ptr to a function or NULL. This function returns a function entry chunk. </dd></dl>

</div>
</div>
<a class="anchor" id="aa1f8b164bb6112dbc21bfecd4763c58a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_func_num </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get ordinal number of a function. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ea</td><td>any address in the function </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>number of function (0..<a class="el" href="funcs_8hpp.html#a22dd1d91e9eb3d3bab69abed43be3aee" title="Get total number of functions in the program. ">get_func_qty()</a>-1). -1 means 'no function at the specified address'. </dd></dl>

</div>
</div>
<a class="anchor" id="aed19494fa9d9d743cfea120af7b8deb5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="classfunc__t.html">func_t</a>* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_prev_func </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get pointer to the previous function. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ea</td><td>any address in the program </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ptr to function or NULL if previous function doesn't exist </dd></dl>

</div>
</div>
<a class="anchor" id="aef63013a60578886a19b1bbfef2fe234"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="classfunc__t.html">func_t</a>* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_next_func </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get pointer to the next function. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ea</td><td>any address in the program </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ptr to function or NULL if next function doesn't exist </dd></dl>

</div>
</div>
<a class="anchor" id="a11fc740f61121d71d6958030fa06e677"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_func_ranges </td>
          <td>(</td>
          <td class="paramtype">rangeset_t *&#160;</td>
          <td class="paramname"><em>ranges</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classfunc__t.html">func_t</a> *&#160;</td>
          <td class="paramname"><em>pfn</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get function ranges. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ranges</td><td>buffer to receive the range info </td></tr>
    <tr><td class="paramname">pfn</td><td>ptr to function structure </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>end address of the last function range (BADADDR-error) </dd></dl>

</div>
</div>
<a class="anchor" id="aeadbb1e0b11eae2e34730ede51d1ed38"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_func_cmt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classfunc__t.html">func_t</a> *&#160;</td>
          <td class="paramname"><em>pfn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>repeatable</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get function comment. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>buffer for the comment </td></tr>
    <tr><td class="paramname">pfn</td><td>ptr to function structure </td></tr>
    <tr><td class="paramname">repeatable</td><td>get repeatable comment? </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>size of comment or -1 In fact this function works with function chunks too. </dd></dl>

</div>
</div>
<a class="anchor" id="a49070bb3dbf2ca55720d20db3a44c9f0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> set_func_cmt </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classfunc__t.html">func_t</a> *&#160;</td>
          <td class="paramname"><em>pfn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>repeatable</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set function comment. </p>
<p>This function works with function chunks too. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pfn</td><td>ptr to function structure </td></tr>
    <tr><td class="paramname">cmt</td><td>comment string, may be multiline (with '<br />
'). Use empty str ("") to delete comment </td></tr>
    <tr><td class="paramname">repeatable</td><td>set repeatable comment? </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a184f1967b3f6e7d00e02e4d97a41e836"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> update_func </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classfunc__t.html">func_t</a> *&#160;</td>
          <td class="paramname"><em>pfn</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Update information about a function in the database (<a class="el" href="classfunc__t.html" title="A function is a set of continuous ranges of addresses with characteristics. ">func_t</a>). </p>
<p>You must not change the function start and end addresses using this function. Use <a class="el" href="funcs_8hpp.html#aea0e8d3e2712894d3b4b3fdea39cd5c3" title="Move function chunk start address. ">set_func_start()</a> and <a class="el" href="funcs_8hpp.html#a7548171011040223d66c8740d7098d32" title="Move function chunk end address. ">set_func_end()</a> for it. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pfn</td><td>ptr to function structure </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>success </dd></dl>

</div>
</div>
<a class="anchor" id="a55d69de76e1743db96e0d7ecf7909dc2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> add_func_ex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classfunc__t.html">func_t</a> *&#160;</td>
          <td class="paramname"><em>pfn</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a new function. </p>
<p>If the fn-&gt;end_ea is <a class="el" href="pro_8h.html#a63a7c1cde5fb0cf0d0023d55c742dd4f" title="this value is used for &#39;bad address&#39; ">BADADDR</a>, then IDA will try to determine the function bounds by calling find_func_bounds(..., <a class="el" href="group___f_i_n_d___f_u_n_c___f.html#ga625d181ea2205e5fe3a844f61f1bfca6" title="create instruction if undefined byte is encountered ">FIND_FUNC_DEFINE</a>). If ea1 is in the middle of an existing function, IDA will try to shrink it to make room for the new function. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pfn</td><td>ptr to filled function structure </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>success </dd></dl>

</div>
</div>
<a class="anchor" id="a43dfcfff5941536b5b16d5ea160cce8a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool add_func </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea2</em> = <code><a class="el" href="pro_8h.html#a63a7c1cde5fb0cf0d0023d55c742dd4f">BADADDR</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add a new function. </p>
<p>If the function end address is <a class="el" href="pro_8h.html#a63a7c1cde5fb0cf0d0023d55c742dd4f" title="this value is used for &#39;bad address&#39; ">BADADDR</a>, then IDA will try to determine the function bounds by calling find_func_bounds(..., <a class="el" href="group___f_i_n_d___f_u_n_c___f.html#ga625d181ea2205e5fe3a844f61f1bfca6" title="create instruction if undefined byte is encountered ">FIND_FUNC_DEFINE</a>);</p>
<p>If ea1 is in the middle of an existing function, the kernel will try to shrink it to make room for the new function.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ea1</td><td>start address </td></tr>
    <tr><td class="paramname">ea2</td><td>end address </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>success </dd></dl>

</div>
</div>
<a class="anchor" id="ac8a9f424e35fdf6393b44bf35f36832f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> del_func </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Delete a function. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ea</td><td>any address in the function entry chunk </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>success </dd></dl>

</div>
</div>
<a class="anchor" id="aea0e8d3e2712894d3b4b3fdea39cd5c3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> set_func_start </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>newstart</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Move function chunk start address. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ea</td><td>any address in the function </td></tr>
    <tr><td class="paramname">newstart</td><td>new end address of the function </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___m_o_v_e___f_u_n_c__.html">Function move result codes</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a7548171011040223d66c8740d7098d32"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> set_func_end </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>newend</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Move function chunk end address. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ea</td><td>any address in the function </td></tr>
    <tr><td class="paramname">newend</td><td>new end address of the function </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>success </dd></dl>

</div>
</div>
<a class="anchor" id="af4ed5ff5471d43941271df7cb0a54cd0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> reanalyze_function </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classfunc__t.html">func_t</a> *&#160;</td>
          <td class="paramname"><em>pfn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea1</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea2</em> = <code><a class="el" href="pro_8h.html#a63a7c1cde5fb0cf0d0023d55c742dd4f">BADADDR</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>analyze_parents</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reanalyze a function. </p>
<p>This function analyzes all chunks of the given function. Optional parameters (ea1, ea2) may be used to narrow the analyzed range. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pfn</td><td>pointer to a function </td></tr>
    <tr><td class="paramname">ea1</td><td>start of the range to analyze </td></tr>
    <tr><td class="paramname">ea2</td><td>end of range to analyze </td></tr>
    <tr><td class="paramname">analyze_parents</td><td>meaningful only if pfn points to a function tail. if true, all tail parents will be reanalyzed. if false, only the given tail will be reanalyzed. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af27a7eb0cc4e210f6ffa21e6aa06e589"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> find_func_bounds </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classfunc__t.html">func_t</a> *&#160;</td>
          <td class="paramname"><em>nfn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Determine the boundaries of a new function. </p>
<p>This function tries to find the start and end addresses of a new function. It calls the module with processor_t::func_bounds in order to fine tune the function boundaries. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">nfn</td><td>structure to fill with information \ nfn-&gt;start_ea points to the start address of the new function. </td></tr>
    <tr><td class="paramname">flags</td><td><a class="el" href="group___f_i_n_d___f_u_n_c___f.html">Find function bounds flags</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___f_i_n_d___f_u_n_c___r.html">Find function bounds result codes</a> </dd></dl>

</div>
</div>
<a class="anchor" id="aaee61d9e3082565c8e941377a5b150c5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_func_name </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get function name. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">out</td><td>buffer for the answer </td></tr>
    <tr><td class="paramname">ea</td><td>any address in the function </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>length of the function name </dd></dl>

</div>
</div>
<a class="anchor" id="ac1c60a7de477ea88c24a5cecf5722942"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_func_bitness </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classfunc__t.html">func_t</a> *&#160;</td>
          <td class="paramname"><em>pfn</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get function bitness (which is equal to the function segment bitness). </p>
<p>pfn==NULL =&gt; returns 0 </p><dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>16 </td></tr>
    <tr><td class="paramname">1</td><td>32 </td></tr>
    <tr><td class="paramname">2</td><td>64 </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1ce3d589a62220b86154f5b43bd9d51a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> set_func_name_if_jumpfunc </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classfunc__t.html">func_t</a> *&#160;</td>
          <td class="paramname"><em>pfn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>oldname</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Give a meaningful name to function if it consists of only 'jump' instruction. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pfn</td><td>pointer to function (may be NULL) </td></tr>
    <tr><td class="paramname">oldname</td><td>old name of function. if old name was in "j_..." form, then we may discard it and set a new name. if oldname is not known, you may pass NULL. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>success </dd></dl>

</div>
</div>
<a class="anchor" id="a3819926f1d7697e0eb65015230c1e3d7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> calc_thunk_func_target </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classfunc__t.html">func_t</a> *&#160;</td>
          <td class="paramname"><em>pfn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> *&#160;</td>
          <td class="paramname"><em>fptr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Calculate target of a thunk function. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pfn</td><td>pointer to function (may not be NULL) </td></tr>
    <tr><td class="paramname">fptr</td><td>out: will hold address of a function pointer (if indirect jump) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the target function or <a class="el" href="pro_8h.html#a63a7c1cde5fb0cf0d0023d55c742dd4f" title="this value is used for &#39;bad address&#39; ">BADADDR</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ae527c8e35dbe6163ea66f8709a7bfafa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> func_does_return </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>callee</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Does the function return?. </p>
<p>To calculate the answer, <a class="el" href="group___f_u_n_c__.html#ga9f89bd6c0cf00b4e346266627a5e5b3a" title="Function doesn&#39;t return. ">FUNC_NORET</a> flag and is_noret() are consulted The latter is required for imported functions in the .idata section. Since in .idata we have only function pointers but not functions, we have to introduce a special flag for them. </p>

</div>
</div>
<a class="anchor" id="a65cb55474c9f4d9bbea12873dcf4fbcc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> reanalyze_noret_flag </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Plan to reanalyze noret flag. </p>
<p>This function does not remove FUNC_NORET if it is already present. It just plans to reanalysis. </p>

</div>
</div>
<a class="anchor" id="a1f68e84613300162cc0d23e79250c4d9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> set_noret_insn </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>insn_ea</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>noret</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Signal a non-returning instruction. </p>
<p>This function can be used by the processor module to tell the kernel about non-returning instructions (like call exit). The kernel will perform the global function analysis and find out if the function returns at all. This analysis will be done at the first call to <a class="el" href="funcs_8hpp.html#ae527c8e35dbe6163ea66f8709a7bfafa" title="Does the function return?. ">func_does_return()</a> </p><dl class="section return"><dt>Returns</dt><dd>true if the instruction 'noret' flag has been changed </dd></dl>

</div>
</div>
<a class="anchor" id="a3062576bdeb6fb6fc123e74fc2939efb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="classfunc__t.html">func_t</a>* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_fchunk </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get pointer to function chunk structure by address. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ea</td><td>any address in a function chunk </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ptr to a function chunk or NULL. This function may return a function entry as well as a function tail. </dd></dl>

</div>
</div>
<a class="anchor" id="a4c84a87f6299f0724f8f1883ca778620"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="classfunc__t.html">func_t</a>* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> getn_fchunk </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get pointer to function chunk structure by number. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">n</td><td>number of function chunk, is in range 0..<a class="el" href="funcs_8hpp.html#aa10ff5e98bb6bb48e48cadf69cadd54f" title="Get total number of function chunks in the program. ">get_fchunk_qty()</a>-1 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ptr to a function chunk or NULL. This function may return a function entry as well as a function tail. </dd></dl>

</div>
</div>
<a class="anchor" id="aa5fe102694ea5e127bfb3f81d65cf39c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_fchunk_num </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get ordinal number of a function chunk in the global list of function chunks. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ea</td><td>any address in the function chunk </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>number of function chunk (0..<a class="el" href="funcs_8hpp.html#aa10ff5e98bb6bb48e48cadf69cadd54f" title="Get total number of function chunks in the program. ">get_fchunk_qty()</a>-1). -1 means 'no function chunk at the specified address'. </dd></dl>

</div>
</div>
<a class="anchor" id="ae1a94addf4c657d4a718318936d505df"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="classfunc__t.html">func_t</a>* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_prev_fchunk </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get pointer to the previous function chunk in the global list. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ea</td><td>any address in the program </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ptr to function chunk or NULL if previous function chunk doesn't exist </dd></dl>

</div>
</div>
<a class="anchor" id="ade067f329670a1a2b4f4bd6b6dfacf20"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="classfunc__t.html">func_t</a>* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_next_fchunk </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get pointer to the next function chunk in the global list. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ea</td><td>any address in the program </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ptr to function chunk or NULL if next function chunk doesn't exist </dd></dl>

</div>
</div>
<a class="anchor" id="a52f9ee11e7bb8a270a3cbe3714eeb5fd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> append_func_tail </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classfunc__t.html">func_t</a> *&#160;</td>
          <td class="paramname"><em>pfn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Append a new tail chunk to the function definition. </p>
<p>If the tail already exists, then it will simply be added to the function tail list Otherwise a new tail will be created and its owner will be set to be our function If a new tail can not be created, then this function will fail. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ea1</td><td>start of the tail. If a tail already exists at the specified address it must start at 'ea1' </td></tr>
    <tr><td class="paramname">ea2</td><td>end of the tail. If a tail already exists at the specified address it must end at 'ea2'. If specified as BADADDR, IDA will determine the end address itself. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae7c614485023e2bb894f6c304244e120"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> remove_func_tail </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classfunc__t.html">func_t</a> *&#160;</td>
          <td class="paramname"><em>pfn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>tail_ea</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Remove a function tail. </p>
<p>If the tail belongs only to one function, it will be completely removed. Otherwise if the function was the tail owner, the first function using this tail becomes the owner of the tail. </p>

</div>
</div>
<a class="anchor" id="ac0111894398bef00303b816851f54a27"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> set_tail_owner </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classfunc__t.html">func_t</a> *&#160;</td>
          <td class="paramname"><em>fnt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>func_start</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set a function as the possessing function of a function tail. </p>
<p>The function should already refer to the tail (after append_func_tail). </p>

</div>
</div>
<a class="anchor" id="ae8d474ef2ca5f96d214640ffb05c3fae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> iterate_func_chunks </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classfunc__t.html">func_t</a> *&#160;</td>
          <td class="paramname"><em>pfn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void(<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> *)(<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea1, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea2, void *ud)&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>ud</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>include_parents</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function to iterate function chunks (all of them including the entry chunk) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pfn</td><td>pointer to the function </td></tr>
    <tr><td class="paramname">func</td><td>function to call for each chunk </td></tr>
    <tr><td class="paramname">ud</td><td>user data for 'func' </td></tr>
    <tr><td class="paramname">include_parents</td><td>meaningful only if pfn points to a function tail. if true, all tail parents will be iterated. if false, only the given tail will be iterated. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a21aa2dc515f7b37cbdc393eb789d9c4d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> plan_to_apply_idasgn </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fname</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a signature file to the list of planned signature files. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fname</td><td>file name. should not contain directory part. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if failed, otherwise number of planned (and applied) signatures </dd></dl>

</div>
</div>
<a class="anchor" id="a11aee0876bd2f234cbb3cc11aa69dbca"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> apply_idasgn_to </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>signame</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>is_startup</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Apply a signature file to the specified address. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">signame</td><td>short name of signature file (the file name without path) </td></tr>
    <tr><td class="paramname">ea</td><td>address to apply the signature </td></tr>
    <tr><td class="paramname">is_startup</td><td>if set, then the signature is treated as a startup one for startup signature ida doesn't rename the first function of the applied module. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___l_i_b_f_u_n_c__.html">Library function codes</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a053a76d76510369e88182b93c1289ce8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_idasgn_qty </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get number of signatures in the list of planned and applied signatures. </p>
<dl class="section return"><dt>Returns</dt><dd>0..n </dd></dl>

</div>
</div>
<a class="anchor" id="a1bc01ee0b7011b7cc2d42ce314bfe0ef"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_current_idasgn </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get number of the the current signature. </p>
<dl class="section return"><dt>Returns</dt><dd>0..n-1 </dd></dl>

</div>
</div>
<a class="anchor" id="adac32c36269d53db5a14273b7ee09d03"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> calc_idasgn_state </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get state of a signature in the list of planned signatures. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">n</td><td>number of signature in the list (0..<a class="el" href="funcs_8hpp.html#a053a76d76510369e88182b93c1289ce8" title="Get number of signatures in the list of planned and applied signatures. ">get_idasgn_qty()</a>-1) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>state of signature or <a class="el" href="group___i_d_a_s_g_n__.html#gadccd43014c7fe84025391684eca0c483" title="bad number of signature ">IDASGN_BADARG</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a3431fb53c0c6e4ec9519348d60722a5b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> del_idasgn </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Remove signature from the list of planned signatures. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">n</td><td>number of signature in the list (0..<a class="el" href="funcs_8hpp.html#a053a76d76510369e88182b93c1289ce8" title="Get number of signatures in the list of planned and applied signatures. ">get_idasgn_qty()</a>-1) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___i_d_a_s_g_n__.html#gac254d7fc6f7d0f1fc23d9ba2b9b0d7f5" title="ok ">IDASGN_OK</a>, <a class="el" href="group___i_d_a_s_g_n__.html#gadccd43014c7fe84025391684eca0c483" title="bad number of signature ">IDASGN_BADARG</a>, <a class="el" href="group___i_d_a_s_g_n__.html#ga0ed1e8d15a128423ad7e6ec66a3b1084" title="signature is already applied ">IDASGN_APPLIED</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a236eb154300e347420506e61ec20f76f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#a56f1a81c92849566ae864511088eb7e8">int32</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_idasgn_desc </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *&#160;</td>
          <td class="paramname"><em>signame</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *&#160;</td>
          <td class="paramname"><em>optlibs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get information about a signature in the list. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">signame</td><td>buffer for the name of the signature. (short form, only base name without the directory part will be stored). if signame == NULL, then the name won't be returned. </td></tr>
    <tr><td class="paramname">optlibs</td><td>buffer for the names of the optional libraries if optlibs == NULL, then the optional libraries are not returned </td></tr>
    <tr><td class="paramname">n</td><td>number of signature in the list (0..<a class="el" href="funcs_8hpp.html#a053a76d76510369e88182b93c1289ce8" title="Get number of signatures in the list of planned and applied signatures. ">get_idasgn_qty()</a>-1) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>number of successfully recognized modules using this signature. -1 means the 'n' is a bad argument, i.e. no signature with this number exists.. </dd></dl>

</div>
</div>
<a class="anchor" id="a9c6ffc0f0c9bb8ee8ce4c01474cc5e31"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> idasgn_t* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_idasgn_header_by_short_name </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get idasgn header by a short signature name. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>short name of a signature </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>NULL if can't find the signature </dd></dl>

</div>
</div>
<a class="anchor" id="ad85bd713ec5c3fda0e79ca0203107c03"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_idasgn_title </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get full description of the signature by its short name. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>the output buffer </td></tr>
    <tr><td class="paramname">name</td><td>short name of a signature </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>size of signature description or -1 </dd></dl>

</div>
</div>
<a class="anchor" id="af1c187a31ca0b6379001ed49babe03cc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> determine_rtl </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Determine compiler/vendor using the startup signatures. </p>
<p>If determined, then appropriate signature files are included into the list of planned signature files. </p>

</div>
</div>
<a class="anchor" id="a2a89d1f765c7d13738e85333473a2f6e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> apply_startup_sig </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>startup</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Apply a startup signature file to the specified address. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ea</td><td>address to apply the signature to; usually <a class="el" href="structidainfo.html#ab8b6edf1a30a7fcd0899d2ab657e692a" title="Linear address of program entry point. ">idainfo::start_ea</a> </td></tr>
    <tr><td class="paramname">startup</td><td>the name of the signature file without path and extension </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if successfully applied the signature </dd></dl>

</div>
</div>
<a class="anchor" id="afb69ff17eadf468ac080c807027d5526"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> try_to_add_libfunc </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td>
          <td class="paramname"><em>ea</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Apply the currently loaded signature file to the specified address. </p>
<p>If a library function is found, then create a function and name it accordingly. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ea</td><td>any address in the program </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___l_i_b_f_u_n_c__.html">Library function codes</a> </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
</body>
</html>
